// 引用插件
const gulp=require('gulp');
// const less=require('gulp-css');
const cleanCSS=require('gulp-clean-css');
const concat=require('gulp-concat');
const rev =require('gulp-rev');
const revCollector=require('gulp-rev-collector');
const uglify =require('gulp-uglify');

// 创建任务,压缩css
gulp.task('minifyTask',function(){
    // return gulp.src('public/css/*.css')
    // 压缩css
    gulp.src('public/css/*.css')
    .pipe(concat('ab.css'))   //合并css
    .pipe(cleanCSS())    //压缩css
    .pipe(rev())        //hash
    .pipe(gulp.dest('dest/css'))       //输出文件
    .pipe(rev.manifest())         //生成json
    .pipe(gulp.dest('public/rev/css'));          //保存
 
    // 压缩js
    gulp.src('public/js/*.js')
    .pipe(concat('main.js'))     //合并
    .pipe(gulp.dest('dest/js'))
    .pipe(uglify())             //压缩
    .pipe(rev())
    .pipe(gulp.dest('dest/js'))
    .pipe(rev.manifest())
    .pipe(gulp.dest('public/rev/js'));
});


// 修改index里面的引用css、js名字
gulp.task('revTask',['minifyTask'],function(){
    // 要先执行css文件名的重写替换，再执行js的，不然被js影响了，？？
    gulp.src(['public/rev/js/*manifest.json','*.html'])
    .pipe(revCollector({replaceReved:true}))  //执行文件内js名的替换
    .pipe(gulp.dest(''));

     gulp.src(['public/rev/css/*manifest.json','*.html'])
    .pipe(revCollector({replaceReved:true}))  //执行文件内css名的替换
    .pipe(gulp.dest(''));

});


gulp.task('default',['minifyTask','revTask']);